// #include <bitset>
// #include <iostream>
// using namespace std;

// int main() {
//     // 初始化 bitset，假设 N = 8
//     bitset<8> b1("10101010");

//     // 1. size()：返回 bitset 中的位数
//     cout << "Size of b1: " << b1.size() << endl;  // 输出: 8

//     // 2. count()：返回 bitset 中为 1 的位的个数
//     cout << "Number of 1's in b1: " << b1.count() << endl;  // 输出: 4

//     // 3. any()：如果 bitset 中有任何位为 1，则返回 true，否则返回 false
//     cout << "Does b1 have any 1's? " << (b1.any() ? "Yes" : "No") << endl;  // 输出: Yes

//     // 4. none()：如果 bitset 中所有位都是 0，则返回 true，否则返回 false
//     cout << "Does b1 have no 1's? " << (b1.none() ? "Yes" : "No") << endl;  // 输出: No

//     // 5. test(pos)：检查 bitset 中索引为 pos 的位是否为 1
//     cout << "Is bit 0 of b1 1? " << (b1.test(0) ? "Yes" : "No") << endl;  // 输出: Yes
//     cout << "Is bit 1 of b1 1? " << (b1.test(1) ? "Yes" : "No") << endl;  // 输出: No

//     // 6. set(pos)：将 bitset 中索引为 pos 的位设置为 1
//     b1.set(1);
//     cout << "b1 after set(1): " << b1 << endl;  // 输出: 10101110

//     // 7. set()：将所有位设置为 1
//     b1.set();
//     cout << "b1 after set(): " << b1 << endl;  // 输出: 11111111

//     // 8. reset(pos)：将 bitset 中索引为 pos 的位设置为 0
//     b1.reset(1);
//     cout << "b1 after reset(1): " << b1 << endl;  // 输出: 11111101

//     // 9. reset()：将所有位设置为 0
//     b1.reset();
//     cout << "b1 after reset(): " << b1 << endl;  // 输出: 00000000

//     // 10. flip(pos)：反转 bitset 中索引为 pos 的位的值
//     b1.flip(2);
//     cout << "b1 after flip(2): " << b1 << endl;  // 输出: 00100000

//     // 11. flip()：反转 bitset 中所有位的值
//     b1.flip();
//     cout << "b1 after flip(): " << b1 << endl;  // 输出: 11011111

//     // 12. operator[]：通过下标访问 bitset 中指定位置的位
//     cout << "bit 3 of b1: " << b1[3] << endl;  // 输出: 0

//     // 13. to_string()：返回 bitset 的二进制字符串表示
//     cout << "b1 as string: " << b1.to_string() << endl;  // 输出: 11011111

//     // 14. to_ulong()：将 bitset 转换为 unsigned long 类型的数值
//     cout << "b1 as unsigned long: " << b1.to_ulong() << endl;  // 输出: 223

//     // 15. to_ullong()：将 bitset 转换为 unsigned long long 类型的数值
//     cout << "b1 as unsigned long long: " << b1.to_ullong() << endl;  // 输出: 223

//     return 0;
// }

#include <cstddef>
#include <iostream>
using namespace std;
int main() {
    unsigned int a = 123;
    size_t temp = 0;
    int t = a;
    while(t) {
        if(t & 1) {
            temp++;
        }
        t = t >> 1;
    }
    cout << temp;
    return 0;
}